package collections;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
 * java.util.Iterator 接口中的抽象方法:  hasNext() 、next() 、remove()
 */
public class IteratorTest1 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("乐乐");
        list.add("乐乐1");
        list.add("乐乐2");
        list.add("乐乐3");
        list.add("乐乐4");
        list.add("乐乐5");
        System.out.println( list );

        System.out.println( "**************************" );

        Iterator<String> iterator = list.iterator();

        while ( iterator.hasNext() ){
            String str = iterator.next();
            if ( str.equals( "乐乐2" ) ){
//                list.remove( str );//java.util.ConcurrentModificationException
                // 当使用 迭代器 或 "for-each loop" 语句 迭代集合时，
                // 如果需要删除集合中的元素，应该使用 迭代器的 remove 方法，而不是集合本身的方法 ( 比如 x.remove( "霍去病" )
                iterator.remove();// 删除目前已经获取到的元素 ( 即刚刚调用 next 方法获取到谁就删除谁 )
            }
        }

        System.out.println( list );

    }
}
